package com.itheima.d8_thread_pool;

import java.util.concurrent.*;

/*
     目标：线程池处理任务
     需求 : 使用线程池处理Callable类型任务
 */
public class ThreadPoolTest3 {
    public static void main(String[] args) {
        //创建线程池对象
        ExecutorService es = new ThreadPoolExecutor(
                10,//核心线程的数量
                40,//最大线程数量
                30,//临时线程存货的时间
                TimeUnit.SECONDS,//临时线程存货的时间代为
                new ArrayBlockingQueue<>(20),//线程队列，允许有20哥客人排队等待
                Executors.defaultThreadFactory(),//线程工厂
                new ThreadPoolExecutor.AbortPolicy()//拒绝策略
        );


        //使用线程池梳理Calld
        Future<String> future = es.submit(new MyCallable(5));
        try {
            String result = future.get();
            System.out.println(result);
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }


    }
}
